1. Informações, Pacotes R e datasets

################################################################################
################################################################################
## 1.1 Pontos de mudança e IC95% ###############################################
################################################################################
################################################################################

################################################################################
## 1.1.1 Ponto de mudança e IC95% Glicose ______________________________________
################################################################################

LS_IC95_Ponto_inflexao_glicose<-11.72

Ponto_inflexao_glicose<-10.90

LI_IC95_Ponto_inflexao_glicose<-10.09

################################################################################
## 1.1.2 Ponto de mudança e IC95% HOMA-IR ______________________________________
################################################################################

LS_IC95_Ponto_inflexao_HOMA_IR<-12.87

Ponto_inflexao_HOMA_IR<-11.23

LI_IC95_Ponto_inflexao_HOMA_IR<-9.58

################################################################################
## 1.1.3 Ponto de mudança e IC95% Colesterol Total _____________________________
################################################################################

LS_IC95_Ponto_inflexao_CT<-17.89

Ponto_inflexao_CT<-15.85

LI_IC95_Ponto_inflexao_CT<-13.81

################################################################################
## 1.1.4 Ponto de mudança e IC95% HDL-c ________________________________________
################################################################################

LS_IC95_Ponto_inflexao_HDL.c<-17.98

Ponto_inflexao_HDL.c<-16.11

LI_IC95_Ponto_inflexao_HDL.c<-14.23

################################################################################
## 1.1.5 Ponto de mudança e IC95% LDL-c ________________________________________
################################################################################

LS_IC95_Ponto_inflexao_LDL.c<-18.73

Ponto_inflexao_LDL.c<-16.61

LI_IC95_Ponto_inflexao_LDL.c<-14.49

################################################################################
## 1.1.6 Ponto de mudança e IC95% Triglicérides ________________________________
################################################################################

LS_IC95_Ponto_inflexao_TRI<-14.35

Ponto_inflexao_TRI<-13.08

LI_IC95_Ponto_inflexao_TRI<-11.82

################################################################################
################################################################################
## 1.2 Instalação Pacote R #####################################################
################################################################################
################################################################################

Pacotes_R <- c("rmarkdown","knitr","multimode","modeest","rstatix","univOutl",
               "readxl","utf8","pwr","forecast","MultNonParam","ggplot2","earth",
               "plotly","DT","kableExtra","dplyr","stats","segmented","caret",
               "refineR","SciViews","rcompanion","effectsize","car","moments",
               "ggpubr","writexl","metafor","gridExtra","grid","meta")

if(sum(as.numeric(!Pacotes_R %in% installed.packages())) != 0){
  instalador <- Pacotes_R[!Pacotes_R %in% installed.packages()]
  for(i in 1:length(instalador)) {
    install.packages(instalador, dependencies = TRUE)
    break()}
  sapply(Pacotes_R, require, character = TRUE)
  } else {
    sapply(Pacotes_R, require, character = TRUE)
  }
##    rmarkdown        knitr    multimode      modeest      rstatix     univOutl 
##         TRUE         TRUE         TRUE         TRUE         TRUE         TRUE 
##       readxl         utf8          pwr     forecast MultNonParam      ggplot2 
##         TRUE         TRUE         TRUE         TRUE         TRUE         TRUE 
##        earth       plotly           DT   kableExtra        dplyr        stats 
##         TRUE         TRUE         TRUE         TRUE         TRUE         TRUE 
##    segmented        caret      refineR     SciViews   rcompanion   effectsize 
##         TRUE         TRUE         TRUE         TRUE         TRUE         TRUE 
##          car      moments       ggpubr      writexl      metafor    gridExtra 
##         TRUE         TRUE         TRUE         TRUE         TRUE         TRUE 
##         grid         meta 
##         TRUE         TRUE
library(utf8)
options(es.use_symbols = TRUE) 
options(scipen = 999)
library(ggplot2)
library(dplyr)
set.seed(200707042) # Para resultados reproduzíveis

################################################################################
################################################################################
## 1.3 Gráfico Sobreposição dos IC95% ##########################################
################################################################################
################################################################################

# Criar um dataframe com os dados

exames <- c("Colesterol total", 
            "HDL-c", 
            "LDL-c", 
            "Triglicérides", 
            "HOMA-IR", 
            "Glicose")

ponto_corte <- c(Ponto_inflexao_CT, 
                 Ponto_inflexao_HDL.c, 
                 Ponto_inflexao_LDL.c, 
                 Ponto_inflexao_TRI, 
                 Ponto_inflexao_HOMA_IR, 
                 Ponto_inflexao_glicose)

inferior <- c(LI_IC95_Ponto_inflexao_CT, 
              LI_IC95_Ponto_inflexao_HDL.c, 
              LI_IC95_Ponto_inflexao_LDL.c, 
              LI_IC95_Ponto_inflexao_TRI, 
              LI_IC95_Ponto_inflexao_HOMA_IR, 
              LI_IC95_Ponto_inflexao_glicose)

superior <- c(LS_IC95_Ponto_inflexao_CT, 
              LS_IC95_Ponto_inflexao_HDL.c, 
              LS_IC95_Ponto_inflexao_LDL.c, 
              LS_IC95_Ponto_inflexao_TRI, 
              LS_IC95_Ponto_inflexao_HOMA_IR, 
              LS_IC95_Ponto_inflexao_glicose)

df <- data.frame(exames, ponto_corte, inferior, superior)

# Calcular os intervalos de confiança de 83%

df$inferior_95 <- df$ponto_corte - (df$superior - df$ponto_corte) * sqrt(.95/.95)
df$superior_95 <- df$ponto_corte + (df$superior - df$ponto_corte) * sqrt(.95/.95)

# Verificar se os intervalos de confiança se sobrepõem
df <- df %>%
  arrange(inferior_95, superior_95) %>%
  mutate(sobreposicao = c(FALSE, inferior_95[-1] <= superior_95[-n()]))

# Atribuir cores aos intervalos de confiança com base na sobreposição
df$cor <- with(df, cumsum(!sobreposicao))

# Organizando o conjunto de dados
df <- df[order(-df$ponto_corte),]

# Criando o gráfico
graf_IC95<-ggplot(df, aes(x = factor(exames, levels = df$exames), 
                          y = ponto_corte, color = factor(cor))) +
  geom_linerange(aes(ymin = inferior_95, ymax = superior_95), size = 0.8) +
  geom_point(size = 2) +
  geom_errorbar(aes(ymin = inferior_95, ymax = superior_95), width = 0.2, size = 0.5) +
  coord_flip() +
  scale_color_manual(values = c("black", rainbow(length(unique(df$cor)) - 1)), 
                     name = "Sobreposição") +
  labs(x = "Exames", y = "Pontos de inflexão da Prolactina (ng/mL)", title = "") +
  scale_y_continuous(breaks = seq(min(df$inferior_95), max(df$superior_95), by = 0.5)) + 
  theme_bw() +
  theme(
    axis.text.x = element_text(size = 14, color = "black", angle = 45, hjust = 1), 
    axis.text.y = element_text(size = 14, color = "black"),
    axis.line = element_line(colour = "black"),
    axis.title = element_text(size = 16),
    legend.position = "none",
  panel.grid.minor = element_blank()
)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
graf_IC95

graf_IC95_2<-ggplotly(graf_IC95)
graf_IC95_2
ggsave("2_Figuras/Fig._IC95%_Sobrepostos.png",
       plot = graf_IC95, device = "png")

################################################################################
################################################################################
## 1.4 Estimação do alfa para a comparações de IC95% ###########################
################################################################################
################################################################################


################################################################################
### 1.4.1 Glicose vs HOMA-IR ___________________________________________________
################################################################################


#### 1.4.1.1 Calcular a probabilidade P (Formula 3) ____________________________
################################################################################

calc_prob <- function(rho, gamma) {
  2 * pnorm(-1.96 * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.1.2 Calcular a probabilidade P no caso específico γ=0 e ρ=1 (Formula 4) 
################################################################################

calc_prob_spec <- function() {
  2 * pnorm(-1.96 * 2 / sqrt(2))
}

#### 1.4.1.3 Calcular o nível de confiança (Formula 6) _________________________
################################################################################

conf_level <- function(z) {
  (1 - 2 * pnorm(-z)) * 100
}

#### 1.4.1.4 Calcular a probabilidade P com um valor de z ajustado (Formula 7) _
################################################################################

calc_prob_z <- function(rho, gamma, z) {
  2 * pnorm(-z * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.1.5 Calcular valor de z para uma probabilidade P de 5% (Formula 10) ___
################################################################################

calc_z <- function(rho, gamma, p) {
  q <- 1 - (p/ 2)
  z <- abs(qnorm(1 - q))
  z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho)
}

#### 1.4.1.6 Calcular o nível de confiança correspondente (Formula 11) _________
################################################################################

calc_conf_level <- function(rho, gamma, z) {
  (1 - 2 * pnorm(-z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho))) * 100
}

#### 1.4.1.7 Ratio σ_2/σ_1 _____________________________________________________
################################################################################

rho <- 2.02

#### 1.4.1.8 Coeficiente de Correlação entre os Pontos de inflexão _____________
################################################################################

gamma <- 0

#### 1.4.1.9 Resultados ________________________________________________________
################################################################################

print(paste("Probabilidade P:", calc_prob(rho, gamma)))
## [1] "Probabilidade P: 0.00863651414535271"
print(paste("Probabilidade P (caso específico):", calc_prob_spec()))
## [1] "Probabilidade P (caso específico): 0.00557372453517213"
print(paste("Nível de confiança para z=1.3859:", conf_level(1.386)))
## [1] "Nível de confiança para z=1.3859: 83.4253096509899"
print(paste("Nível de confiança para z=1.96:", conf_level(1.96)))
## [1] "Nível de confiança para z=1.96: 95.0004209703559"
print(paste("Probabilidade P para z=1.3859:", calc_prob_z(rho,gamma,z= 1.386)))
## [1] "Probabilidade P para z=1.3859: 0.0633054870466338"
print(paste("Probabilidade P para z=1.96:", calc_prob_z(rho,gamma, z= 1.96)))
## [1] "Probabilidade P para z=1.96: 0.00863651414535271"
print(paste("Valor de z para obter P=5%:", calc_z(rho, gamma, p = 0.05)))
## [1] "Valor de z para obter P=5%: 1.4628173466919"
print(paste("Valor de z para obter P=0.5%:", calc_z(rho, gamma, p = 0.0056)))
## [1] "Valor de z para obter P=0.5%: 2.06763122431127"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 1.96),1)))
## [1] "Nível de confiança correspondente: 85.6"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 2.77),1)))
## [1] "Nível de confiança correspondente: 96.1"
################################################################################
### 1.4.2 HOMA-IR vs Triglicérides _____________________________________________
################################################################################


#### 1.4.2.1 Calcular a probabilidade P (Formula 3) ____________________________
################################################################################

calc_prob <- function(rho, gamma) {
  2 * pnorm(-1.96 * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.2.2 Calcular a probabilidade P no caso específico γ=0 e ρ=1 (Formula 4) 
################################################################################

calc_prob_spec <- function() {
  2 * pnorm(-1.96 * 2 / sqrt(2))
}

#### 1.4.2.3 Calcular o nível de confiança (Formula 6) _________________________
################################################################################

conf_level <- function(z) {
  (1 - 2 * pnorm(-z)) * 100
}

#### 1.4.2.4 Calcular a probabilidade P com um valor de z ajustado (Formula 7) _
################################################################################

calc_prob_z <- function(rho, gamma, z) {
  2 * pnorm(-z * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.2.5 Calcular valor de z para uma probabilidade P de 5% (Formula 10) ___
################################################################################

calc_z <- function(rho, gamma, p) {
  q <- 1 - (p/ 2)
  z <- abs(qnorm(1 - q))
  z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho)
}

#### 1.4.2.6 Calcular o nível de confiança correspondente (Formula 11) _________
################################################################################

calc_conf_level <- function(rho, gamma, z) {
  (1 - 2 * pnorm(-z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho))) * 100
}

#### 1.4.2.7 Ratio σ_2/σ_1 _____________________________________________________
################################################################################

rho <- 0.77

#### 1.4.2.8 Coeficiente de Correlação entre os Pontos de inflexão _____________
################################################################################

gamma <- 0

#### 1.4.2.9 Resultados ________________________________________________________
################################################################################

print(paste("Probabilidade P:", calc_prob(rho, gamma)))
## [1] "Probabilidade P: 0.00598231806075919"
print(paste("Probabilidade P (caso específico):", calc_prob_spec()))
## [1] "Probabilidade P (caso específico): 0.00557372453517213"
print(paste("Nível de confiança para z=1.3859:", conf_level(1.386)))
## [1] "Nível de confiança para z=1.3859: 83.4253096509899"
print(paste("Nível de confiança para z=1.96:", conf_level(1.96)))
## [1] "Nível de confiança para z=1.96: 95.0004209703559"
print(paste("Probabilidade P para z=1.3859:", calc_prob_z(rho,gamma,z= 1.386)))
## [1] "Probabilidade P para z=1.3859: 0.0519246155220898"
print(paste("Probabilidade P para z=1.96:", calc_prob_z(rho,gamma, z= 1.96)))
## [1] "Probabilidade P para z=1.96: 0.00598231806075919"
print(paste("Valor de z para obter P=5%:", calc_z(rho, gamma, p = 0.05)))
## [1] "Valor de z para obter P=5%: 1.39755555503473"
print(paste("Valor de z para obter P=0.5%:", calc_z(rho, gamma, p = 0.0056)))
## [1] "Valor de z para obter P=0.5%: 1.97538640749253"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 1.96),1)))
## [1] "Nível de confiança correspondente: 83.8"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 2.77),1)))
## [1] "Nível de confiança correspondente: 95.2"
################################################################################
### 1.4.3 Triglicérides vs Colesterol total ____________________________________
################################################################################


#### 1.4.3.1 Calcular a probabilidade P (Formula 3) ____________________________
################################################################################

calc_prob <- function(rho, gamma) {
  2 * pnorm(-1.96 * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.3.2 Calcular a probabilidade P no caso específico γ=0 e ρ=1 (Formula 4) 
################################################################################

calc_prob_spec <- function() {
  2 * pnorm(-1.96 * 2 / sqrt(2))
}

#### 1.4.3.3 Calcular o nível de confiança (Formula 6) _________________________
################################################################################

conf_level <- function(z) {
  (1 - 2 * pnorm(-z)) * 100
}

#### 1.4.3.4 Calcular a probabilidade P com um valor de z ajustado (Formula 7) _
################################################################################

calc_prob_z <- function(rho, gamma, z) {
  2 * pnorm(-z * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.3.5 Calcular valor de z para uma probabilidade P de 5% (Formula 10) ___
################################################################################

calc_z <- function(rho, gamma, p) {
  q <- 1 - (p/ 2)
  z <- abs(qnorm(1 - q))
  z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho)
}

#### 1.4.3.6 Calcular o nível de confiança correspondente (Formula 11) _________
################################################################################

calc_conf_level <- function(rho, gamma, z) {
  (1 - 2 * pnorm(-z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho))) * 100
}

#### 1.4.3.7 Ratio σ_2/σ_1 _____________________________________________________
################################################################################

rho <- 1.61

#### 1.4.3.8 Coeficiente de Correlação entre os Pontos de inflexão _____________
################################################################################

gamma <- 0

#### 1.4.3.9 Resultados ________________________________________________________
################################################################################

print(paste("Probabilidade P:", calc_prob(rho, gamma)))
## [1] "Probabilidade P: 0.00695228737443857"
print(paste("Probabilidade P (caso específico):", calc_prob_spec()))
## [1] "Probabilidade P (caso específico): 0.00557372453517213"
print(paste("Nível de confiança para z=1.3859:", conf_level(1.386)))
## [1] "Nível de confiança para z=1.3859: 83.4253096509899"
print(paste("Nível de confiança para z=1.96:", conf_level(1.96)))
## [1] "Nível de confiança para z=1.96: 95.0004209703559"
print(paste("Probabilidade P para z=1.3859:", calc_prob_z(rho,gamma,z= 1.386)))
## [1] "Probabilidade P para z=1.3859: 0.056305423836829"
print(paste("Probabilidade P para z=1.96:", calc_prob_z(rho,gamma, z= 1.96)))
## [1] "Probabilidade P para z=1.96: 0.00695228737443857"
print(paste("Valor de z para obter P=5%:", calc_z(rho, gamma, p = 0.05)))
## [1] "Valor de z para obter P=5%: 1.42325196764921"
print(paste("Valor de z para obter P=0.5%:", calc_z(rho, gamma, p = 0.0056)))
## [1] "Valor de z para obter P=0.5%: 2.01170721350064"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 1.96),1)))
## [1] "Nível de confiança correspondente: 84.5"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 2.77),1)))
## [1] "Nível de confiança correspondente: 95.6"
################################################################################
### 1.4.4 Colesterol total vs HDL-c ____________________________________________
################################################################################


#### 1.4.4.1 Calcular a probabilidade P (Formula 3) ____________________________
################################################################################

calc_prob <- function(rho, gamma) {
  2 * pnorm(-1.96 * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.4.2 Calcular a probabilidade P no caso específico γ=0 e ρ=1 (Formula 4) 
################################################################################

calc_prob_spec <- function() {
  2 * pnorm(-1.96 * 2 / sqrt(2))
}

#### 1.4.4.3 Calcular o nível de confiança (Formula 6) _________________________
################################################################################

conf_level <- function(z) {
  (1 - 2 * pnorm(-z)) * 100
}

#### 1.4.4.4 Calcular a probabilidade P com um valor de z ajustado (Formula 7) _
################################################################################

calc_prob_z <- function(rho, gamma, z) {
  2 * pnorm(-z * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.4.5 Calcular valor de z para uma probabilidade P de 5% (Formula 10) ___
################################################################################

calc_z <- function(rho, gamma, p) {
  q <- 1 - (p/ 2)
  z <- abs(qnorm(1 - q))
  z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho)
}

#### 1.4.4.6 Calcular o nível de confiança correspondente (Formula 11) _________
################################################################################

calc_conf_level <- function(rho, gamma, z) {
  (1 - 2 * pnorm(-z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho))) * 100
}

#### 1.4.4.7 Ratio σ_2/σ_1 _____________________________________________________
################################################################################

rho <- 0.92

#### 1.4.4.8 Coeficiente de Correlação entre os Pontos de inflexão _____________
################################################################################

gamma <- 0

#### 1.4.4.9 Resultados ________________________________________________________
################################################################################

print(paste("Probabilidade P:", calc_prob(rho, gamma)))
## [1] "Probabilidade P: 0.0056150059605543"
print(paste("Probabilidade P (caso específico):", calc_prob_spec()))
## [1] "Probabilidade P (caso específico): 0.00557372453517213"
print(paste("Nível de confiança para z=1.3859:", conf_level(1.386)))
## [1] "Nível de confiança para z=1.3859: 83.4253096509899"
print(paste("Nível de confiança para z=1.96:", conf_level(1.96)))
## [1] "Nível de confiança para z=1.96: 95.0004209703559"
print(paste("Probabilidade P para z=1.3859:", calc_prob_z(rho,gamma,z= 1.386)))
## [1] "Probabilidade P para z=1.3859: 0.0501830087154771"
print(paste("Probabilidade P para z=1.96:", calc_prob_z(rho,gamma, z= 1.96)))
## [1] "Probabilidade P para z=1.96: 0.0056150059605543"
print(paste("Valor de z para obter P=5%:", calc_z(rho, gamma, p = 0.05)))
## [1] "Valor de z para obter P=5%: 1.3871063441632"
print(paste("Valor de z para obter P=0.5%:", calc_z(rho, gamma, p = 0.0056)))
## [1] "Valor de z para obter P=0.5%: 1.96061688434171"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 1.96),1)))
## [1] "Nível de confiança correspondente: 83.5"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 2.77),1)))
## [1] "Nível de confiança correspondente: 95"
################################################################################
### 1.4.5 Colesterol total vs LDL-c ____________________________________________
################################################################################


#### 1.4.5.1 Calcular a probabilidade P (Formula 3) ____________________________
################################################################################

calc_prob <- function(rho, gamma) {
  2 * pnorm(-1.96 * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.5.2 Calcular a probabilidade P no caso específico γ=0 e ρ=1 (Formula 4) 
################################################################################

calc_prob_spec <- function() {
  2 * pnorm(-1.96 * 2 / sqrt(2))
}

#### 1.4.5.3 Calcular o nível de confiança (Formula 6) _________________________
################################################################################

conf_level <- function(z) {
  (1 - 2 * pnorm(-z)) * 100
}

#### 1.4.5.4 Calcular a probabilidade P com um valor de z ajustado (Formula 7) _
################################################################################

calc_prob_z <- function(rho, gamma, z) {
  2 * pnorm(-z * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.5.5 Calcular valor de z para uma probabilidade P de 5% (Formula 10) ___
################################################################################

calc_z <- function(rho, gamma, p) {
  q <- 1 - (p/ 2)
  z <- abs(qnorm(1 - q))
  z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho)
}

#### 1.4.5.6 Calcular o nível de confiança correspondente (Formula 11) _________
################################################################################

calc_conf_level <- function(rho, gamma, z) {
  (1 - 2 * pnorm(-z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho))) * 100
}

#### 1.4.5.7 Ratio σ_2/σ_1 _____________________________________________________
################################################################################

rho <- 1.04

#### 1.4.5.8 Coeficiente de Correlação entre os Pontos de inflexão _____________
################################################################################

gamma <- 0

#### 1.4.5.9 Resultados ________________________________________________________
################################################################################

print(paste("Probabilidade P:", calc_prob(rho, gamma)))
## [1] "Probabilidade P: 0.00558285200782896"
print(paste("Probabilidade P (caso específico):", calc_prob_spec()))
## [1] "Probabilidade P (caso específico): 0.00557372453517213"
print(paste("Nível de confiança para z=1.3859:", conf_level(1.386)))
## [1] "Nível de confiança para z=1.3859: 83.4253096509899"
print(paste("Nível de confiança para z=1.96:", conf_level(1.96)))
## [1] "Nível de confiança para z=1.96: 95.0004209703559"
print(paste("Probabilidade P para z=1.3859:", calc_prob_z(rho,gamma,z= 1.386)))
## [1] "Probabilidade P para z=1.3859: 0.0500281392710848"
print(paste("Probabilidade P para z=1.96:", calc_prob_z(rho,gamma, z= 1.96)))
## [1] "Probabilidade P para z=1.96: 0.00558285200782896"
print(paste("Valor de z para obter P=5%:", calc_z(rho, gamma, p = 0.05)))
## [1] "Valor de z para obter P=5%: 1.38617021624533"
print(paste("Valor de z para obter P=0.5%:", calc_z(rho, gamma, p = 0.0056)))
## [1] "Valor de z para obter P=0.5%: 1.95929370662762"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 1.96),1)))
## [1] "Nível de confiança correspondente: 83.4"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 2.77),1)))
## [1] "Nível de confiança correspondente: 95"
################################################################################
### 1.4.6 HDL-c vs LDL-c _______________________________________________________
################################################################################


#### 1.4.6.1 Calcular a probabilidade P (Formula 3) ____________________________
################################################################################

calc_prob <- function(rho, gamma) {
  2 * pnorm(-1.96 * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.6.2 Calcular a probabilidade P no caso específico γ=0 e ρ=1 (Formula 4) 
################################################################################

calc_prob_spec <- function() {
  2 * pnorm(-1.96 * 2 / sqrt(2))
}

#### 1.4.6.3 Calcular o nível de confiança (Formula 6) _________________________
################################################################################

conf_level <- function(z) {
  (1 - 2 * pnorm(-z)) * 100
}

#### 1.4.6.4 Calcular a probabilidade P com um valor de z ajustado (Formula 7) _
################################################################################

calc_prob_z <- function(rho, gamma, z) {
  2 * pnorm(-z * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.6.5 Calcular valor de z para uma probabilidade P de 5% (Formula 10) ___
################################################################################

calc_z <- function(rho, gamma, p) {
  q <- 1 - (p/ 2)
  z <- abs(qnorm(1 - q))
  z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho)
}

#### 1.4.6.6 Calcular o nível de confiança correspondente (Formula 11) _________
################################################################################

calc_conf_level <- function(rho, gamma, z) {
  (1 - 2 * pnorm(-z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho))) * 100
}

#### 1.4.6.7 Ratio σ_2/σ_1 _____________________________________________________
################################################################################

rho <- 1.13

#### 1.4.6.8 Coeficiente de Correlação entre os Pontos de inflexão _____________
################################################################################

gamma <- 0

#### 1.4.6.9 Resultados ________________________________________________________
################################################################################

print(paste("Probabilidade P:", calc_prob(rho, gamma)))
## [1] "Probabilidade P: 0.00566250393123794"
print(paste("Probabilidade P (caso específico):", calc_prob_spec()))
## [1] "Probabilidade P (caso específico): 0.00557372453517213"
print(paste("Nível de confiança para z=1.3859:", conf_level(1.386)))
## [1] "Nível de confiança para z=1.3859: 83.4253096509899"
print(paste("Nível de confiança para z=1.96:", conf_level(1.96)))
## [1] "Nível de confiança para z=1.96: 95.0004209703559"
print(paste("Probabilidade P para z=1.3859:", calc_prob_z(rho,gamma,z= 1.386)))
## [1] "Probabilidade P para z=1.3859: 0.0504110526112334"
print(paste("Probabilidade P para z=1.96:", calc_prob_z(rho,gamma, z= 1.96)))
## [1] "Probabilidade P para z=1.96: 0.00566250393123794"
print(paste("Valor de z para obter P=5%:", calc_z(rho, gamma, p = 0.05)))
## [1] "Valor de z para obter P=5%: 1.38848267814549"
print(paste("Valor de z para obter P=0.5%:", calc_z(rho, gamma, p = 0.0056)))
## [1] "Valor de z para obter P=0.5%: 1.96256227494246"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 1.96),1)))
## [1] "Nível de confiança correspondente: 83.5"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 2.77),1)))
## [1] "Nível de confiança correspondente: 95"
################################################################################
### 1.4.7 HDL-c vs Triglicérides _______________________________________________
################################################################################


#### 1.4.7.1 Calcular a probabilidade P (Formula 3) ____________________________
################################################################################

calc_prob <- function(rho, gamma) {
  2 * pnorm(-1.96 * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.7.2 Calcular a probabilidade P no caso específico γ=0 e ρ=1 (Formula 4) 
################################################################################

calc_prob_spec <- function() {
  2 * pnorm(-1.96 * 2 / sqrt(2))
}

#### 1.4.7.3 Calcular o nível de confiança (Formula 6) _________________________
################################################################################

conf_level <- function(z) {
  (1 - 2 * pnorm(-z)) * 100
}

#### 1.4.7.4 Calcular a probabilidade P com um valor de z ajustado (Formula 7) _
################################################################################

calc_prob_z <- function(rho, gamma, z) {
  2 * pnorm(-z * (1 + rho) / sqrt(1 - 2 * gamma * rho + rho^2))
}

#### 1.4.7.5 Calcular valor de z para uma probabilidade P de 5% (Formula 10) ___
################################################################################

calc_z <- function(rho, gamma, p) {
  q <- 1 - (p/ 2)
  z <- abs(qnorm(1 - q))
  z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho)
}

#### 1.4.7.6 Calcular o nível de confiança correspondente (Formula 11) _________
################################################################################

calc_conf_level <- function(rho, gamma, z) {
  (1 - 2 * pnorm(-z * sqrt(1 - 2 * gamma * rho + rho^2) / (1 + rho))) * 100
}

#### 1.4.7.7 Ratio σ_2/σ_1 _____________________________________________________
################################################################################

rho <- 1.48

#### 1.4.7.8 Coeficiente de Correlação entre os Pontos de inflexão _____________
################################################################################

gamma <- 0

#### 1.4.7.9 Resultados ________________________________________________________
################################################################################

print(paste("Probabilidade P:", calc_prob(rho, gamma)))
## [1] "Probabilidade P: 0.00650149192281061"
print(paste("Probabilidade P (caso específico):", calc_prob_spec()))
## [1] "Probabilidade P (caso específico): 0.00557372453517213"
print(paste("Nível de confiança para z=1.3859:", conf_level(1.386)))
## [1] "Nível de confiança para z=1.3859: 83.4253096509899"
print(paste("Nível de confiança para z=1.96:", conf_level(1.96)))
## [1] "Nível de confiança para z=1.96: 95.0004209703559"
print(paste("Probabilidade P para z=1.3859:", calc_prob_z(rho,gamma,z= 1.386)))
## [1] "Probabilidade P para z=1.3859: 0.0543061324691342"
print(paste("Probabilidade P para z=1.96:", calc_prob_z(rho,gamma, z= 1.96)))
## [1] "Probabilidade P para z=1.96: 0.00650149192281061"
print(paste("Valor de z para obter P=5%:", calc_z(rho, gamma, p = 0.05)))
## [1] "Valor de z para obter P=5%: 1.41162382128379"
print(paste("Valor de z para obter P=0.5%:", calc_z(rho, gamma, p = 0.0056)))
## [1] "Valor de z para obter P=0.5%: 1.99527131426798"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 1.96),1)))
## [1] "Nível de confiança correspondente: 84.2"
print(paste("Nível de confiança correspondente:", 
            round(calc_conf_level(rho, gamma, 2.77),1)))
## [1] "Nível de confiança correspondente: 95.4"

1. Referências


  • Knol MJ, Pestman WR, Grobbee DE. The (mis)use of overlap of confidence intervals to assess effect modification. Eur J Epidemiol 2011;26:253–4. Link here.